#pragma once
#include <string>
#include <vector>
#include "FilterListRegEntry.h"
class CRegistryManager
{
public:
	CRegistryManager(void);
	~CRegistryManager(void);

	std::vector<CFilterListRegEntry> GetFilterListsRegEntries();

	std::wstring GetInstallationPath();
	bool IsAdblockerTurnedOn();
	void TurnAdBlockerOn();
	void TurnAdBlockerOff();	

private:
	HKEY OpenAdBlockerKey();
	HKEY OpenAdBlockerKey(std::wstring keyPath);
	HKEY OpenAdBlockerKey(HKEY parentRegKey, LPCWSTR keyPath);	

	std::vector<CFilterListRegEntry> GetFilterListsRegEntries(HKEY regKey);
	CFilterListRegEntry GetFilterListRegEntry(HKEY regKey);

	void SetIsTurnedOnValue(DWORD value);
	DWORD GetIsTurnedOnValue();

	std::wstring GetStringData(HKEY regKey, const std::wstring& value);
	DWORD GetDwordData(HKEY regKey, const std::wstring& value);

	const DWORD ADLOCKER_TURNED_ON;
	const DWORD ADLOCKER_TURNED_OFF;		
};

